/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package BackEnd;

import BackEnd.Exceptions.NotExistRegisterException;
import BackEnd.Exceptions.UpdateRegisterException;
import Dao.*;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
 *
 * @author emmanuel
 */
public class Categoria {

    private long id;
    private String nombre;  

    public Categoria(long id ,String n)
    {
        this.id = id;
        this.nombre = n;
      
    }

    Categoria() 
    {

    }

    /**
     * @return the nombre
     */
    public String getNombre() {
        return nombre;
    }

    /**
     * @param nombre the nombre to set
     */
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public static Categoria[] getAllCategories() {
        Categoria cat[] = null;
        try {
            CategoriaValueObject[] cvo = (CategoriaValueObject[]) new CategoriaDao().listarTodos();
            cat=new Categoria[cvo.length];

            for(int i=0;i<cvo.length;i++)
            {
                cat[i]=new Categoria();
                cat[i].setId(cvo[i].getId());
                cat[i].setNombre(cvo[i].getNombre());
            }

        } catch (NotExistRegisterException ex) {
            Logger.getLogger(Categoria.class.getName()).log(Level.SEVERE, null, ex);
        }

        return cat;
    }

    public boolean abrir(long id) {
        try {
            CategoriaValueObject cvo = (CategoriaValueObject) new CategoriaDao().traer(new PkId((int) id));
            this.setId(cvo.getId());
            this.setNombre(cvo.getNombre());

        } catch (NotExistRegisterException ex) {
            Logger.getLogger(Categoria.class.getName()).log(Level.SEVERE, null, ex);
            return false;
        }

        return true;
    }

    public void grabar() {

       try {

            CategoriaValueObject cvo = new CategoriaValueObject();
            cvo.setId((int) this.getId());
            cvo.setNombre(this.getNombre());

            try {
                new CategoriaDao().traer(new PkId((int)id));
                } catch (NotExistRegisterException ex){
                    new CategoriaDao().create(cvo);
                }

             new CategoriaDao().update(cvo);
            } catch (Exception ex1) {Logger.getLogger(Post.class.getName()).log(Level.SEVERE, null, ex1);}


    }

    /**
     * @return the id
     */
    public long getId() {
        return id;
    }

    /**
     * @param id the id to set
     */
    public void setId(long id) {
        this.id = id;
    }
}
